//
//  AppDelegate.swift
//  WBWeiBo
//
//  Created by 王斌 on 16/7/9.
//  Copyright © 2016年 王斌. All rights reserved.
//

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    
    var window: UIWindow?
    
    //  返回观察者对象
    var observer: NSObjectProtocol?
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions:[NSObject: AnyObject]?) -> Bool {
        
        // NSNotificationCenter.defaultCenter().addObserver(self, selector: "switchRootVC:", name: SwitchRooctVCNotification, object: nil)
        observer = NSNotificationCenter.defaultCenter().addObserverForName(SwitchRootVCNotification, object: nil, queue: nil) { [weak self] (noti) -> Void in
            //  切换根视图控制器
            self?.switchRootVC(noti)
            
        }
        //  如果是自己定义的类, 想要转成对象需要 -在前面拼接工程名.类名
        //  如果这个类是我系统自己,转成对象不需要使用工程名.类名
        //  同类名获取字符串
        //        let result =  NSStringFromClass(CZProfileTableViewController.self)
        //        print(result)
        
        
        
        
        //        //  类名字符串
        //        let className = "WHWeiBo01.CZProfileTableViewController"
        //        //  转换相应类型
        //        let myClass = NSClassFromString(className) as? UIViewController.Type
        //        //  创建对象使用init
        //        let vc = myClass!.init()
        //        print(vc)
        
        
        //  1.创建window
        window = UIWindow(frame: UIScreen.mainScreen().bounds)
        //  2.创建根视图控制器
        let rootVC = WBMainViewController()
        //  3.设置根视图控制器
        window?.rootViewController = rootVC
        //  4.设置主window并显示
        window?.makeKeyAndVisible()
        
        
        
        return true
    }
    //  切换根视图控制器
    @objc private func switchRootVC(noti: NSNotification) {
        
        let object = noti.object
        //  好比isKindOfClass
        if object is WBOAuthViewController {
            window?.rootViewController = WBWelcomeViewController()
        } else {
            window?.rootViewController = WBMainViewController()
        }
        
    }
    

    
    deinit {
                NSNotificationCenter.defaultCenter().removeObserver(observer!)
    }
    
    
}

